package org.gnyxy.service;

import org.gnyxy.dto.CartDTO;
import org.gnyxy.dto.CartInfoDTO;
import org.gnyxy.dto.CartNumberDTO;
import org.gnyxy.vo.CartInfoVOWithAmount;
import org.gnyxy.vo.CartVO;
import org.gnyxy.vo.CartVOWithAmount;
import org.gnyxy.vo.CartWithInfoVO;

import java.util.List;

public interface CartService {
    /**
     * 添加购物车
     * @param cartDTO
     */
    void add(CartDTO cartDTO);

    /**
     * 查看当前用户的购物车以及详情
     * @param userId
     * @return
     */
    CartVOWithAmount getByUserId(Long userId);
    /**
     * 获取购物车详情
     * @param cartId
     * @return
     */
//    CartWithInfoVO getCartInfoByCartId(Long cartId);

    /**
     * 更新菜品中食材数量
     * @param cartInfoDTO
     */
    void updateMaterialNumber(CartInfoDTO cartInfoDTO);

    /**
     * 更新菜品数量
     * @param cartNumberDTO
     */
    void updateCartNumber(CartNumberDTO cartNumberDTO);

    /**
     * 删除购物车以及详情
     * @param id
     */
    void deleteCart(Long id);

    Long getIdByUserId(Long userId);

    CartInfoVOWithAmount getCartInfos(Long cartId);

    void deleteCartsByIds(List<Long> cartIds);
}
